package com.xiongwei.collection;

import com.xiongwei.pojo.User;

import java.util.*;

/**
 * Set用于存储不重复的元素集合:
 *      放入HashSet的元素与作为HashMap的key要求相同(实现equals和hashCode)
 *      放入TreeSet的元素与TreeMap的key要求相同(实现comparator)
 *
 * HashSet仅仅是对HashMap的一个简单封装
 * SortedSet可以自定义排序算法
 *
 * @author XiongWei
 * @date 2021/1/7
 */
public class SetUse {

    /**
     * 添加元素: boolean add(E e)
     * 删除元素: boolean remove(Object o)
     * 判断包含: boolean contains(Object o)
     */
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        System.out.println(set.add("abc")); // true
        System.out.println(set.add("xyz")); // true
        System.out.println(set.add("xyz")); // false，添加失败，因为元素已存在
        System.out.println(set.contains("xyz")); // true，元素存在
        System.out.println(set.contains("XYZ")); // false，元素不存在
        System.out.println(set.remove("hello")); // false，删除失败，因为元素不存在
        System.out.println(set.size()); // 2，一共两个元素

    }

    public void testHashSet() {
        Set<User> set = new TreeSet<>(new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                return u1.getScore() - u2.getScore();
            }
        });
        List<User> list = new ArrayList<>(set);

    }
}
